# # 1.创建字典
# a = {}
# print(type(a))
# b = dict()
# print(type(b))

# # 2.创建字典的同时设置初始值
# a = {'id': 1, 'name': 'zhangsan'}
# print(a)
# # 一个字典中的key和value的类型不一定都一样
# # 字典对于key是啥类型,有约束~
# # 对于value是什么类型,没有约束~

# # 使用 in 来判定某个key是否在字典中存在.
# a = {
#     'id': 1,
#     'name': "zhangsan"
# }
# print('id' in a)
# print('cal' in a)
# # in只判断key是否存在,与value无关
# print('zhangsan' in a)
#
# # not in 来判定key在字典中不存在
# print('id' not in a)
# print('cal' not in a)


# # 使用[]来根据key来获取value
# a = {
#     'id': 1,
#     'name': "zhangsan"
# }
# print(a['id'])
# print(a['name'])
# print(a[100])
#
# # 对于字典来说,使用in或者[]来获取value是非常高效的操作!!
# # 对于列表来说使用in是比较低效的,而使用[]是比较高效的~


# # 在字典中新增元素,使用 []来进行
# a = {
#     'id': 1,
#     'name': 'zhangsan'
# }
# # 这个操作就是往字典插入新的键值对
# a['score'] = 100
# print(a)
#
#
# # 在字典中,根据key修改value,也是使用[]来进行的~
# a['score'] = 10
# print(a)
#
# # 删除pop方法,根据key来删除键值对~
# a.pop('name')
# print(a)


# # 直接使用for来进行字典的遍历
# a = {
#     'id': 1,
#     "name": "zhangsan",
#     "score": 100
# }
# for key in a:
#     print(key, a[key])
#
# print(a.keys())
# print(a.values())
# print(a.items())
#
# for key, value in a.items():
#     print(key, value)


# 在Python中专门提供了一个 hash函数
# 使用hash函数能够计算出一个变量的hash值
print(hash(0))
print(hash(3.14))
print(hash('hello'))
print(hash(True))
print(hash((1, 2, 3)))

# 有的类型是不能计算hash值的
# print(hash([1, 2, 3]))    # unhashable type: 'list'
# print(hash({}))   # unhashable type: 'dict'

# 不可变对象,一般就是可哈希的~
# 可变对象,一般就是不可哈希的~






















